home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio / Ham Radio CD-ROM (Emerald Software) (1995).ISO / cw / morsecod / zzcode.bas < prev   
BASIC Source File  |  1985-08-25  |  19KB  |  524 lines

  1. 10 '******* WRITTEN BY WB4ZNH, CARL HENSON WITH THE HELP OF BILL MANLEY *******
  2. 20 '*******            8280 CHESTNUT DRIVE                              *******
  3. 30 '*******            JONESBORO, GA. 30236                             *******
  4. 40 '*******            (404) 478-3255                                   *******
  5. 50 '***************************************************************************
  6. 60 'I KNOW THE FCC TEST STYLE PRACTICE WILL CREATE SOME RIDICULOUS SITUATIONS.
  7. 70 'FOR EXAMPLE, IT WILL HAPPEN THAT THE WEATHER IS HOT AND HUMID BUT THE TEMP.
  8. 80 'WILL BE MINUS 6! OR A 12 YR OLD DOCTOR LICENSED AS NOVICE FOR 10 YRS WITH
  9. 90 'AN EXTRA CALL. THE INTENT WAS TO MAKE THE VARIABLES TRULY RANDOM. IF THE  
  10. 100 'FCC CAN BE RIDICULOUS THEN SO CAN I!  73 AND GOOD DX! CARL
  11. 110 '***************************************************************************
  12. 120 'PROGRAM MODIFIED BY KW4M, DAVID FENTEM.  THE MOST SIGNIFICANT CHANGES WERE
  13. 130 'THE ADDITION OF THE ASCII FILE AND THE COMMONLY USED WORDS ROUTINES.
  14. 140 'THE COMMONLY USED WORDS ROUTINE IS INTENDED TO HELP ACHIEVE HIGH SPEED
  15. 150 'COPYING ABILITY THROUGH WORD RECOGNITION AS OPPOSED TO CHARACTER
  16. 160 'RECOGNITION.
  17. 170 '**************************************************************************
  18. 180 KEY OFF
  19. 190 CLS
  20. 200 DEFINT A-Z
  21. 210 T = 105:TT = 20'
  22. 220 PLAY "MFMLT105O3"'                          ** SET DEFAULT CODE SPEED **
  23. 230 DIM C$(90):DIM F$(41):DIM FC$(18):DIM WRD$(250)
  24. 240 C$(32) = "P12"'                                       *   *
  25. 250 C$(33) = ""
  26. 260 C$(34) = ""
  27. 270 C$(35) = ""
  28. 280 C$(36) = ""
  29. 290 C$(37) = ""
  30. 300 C$(38) = ""
  31. 310 C$(39) = ""
  32. 320 C$(40) = ""
  33. 330 C$(41) = ""
  34. 340 C$(42) = ""
  35. 350 C$(43) = ""
  36. 360 C$(44) = "L16GP48L16GP48L48GP48L48GP48L16GP48L16GP16"'* , *
  37. 370 C$(45) = "L16GP48L48GP48L48GP48L48GP48L16GP16"'       * - *
  38. 380 C$(46) = "L48GP48L16GP48L48GP48L16GP48L48GP48L16GP16"'* . *
  39. 390 C$(47) = "L16GP48L48GP48L48GP48L16GP48L48GP16"'       * / *
  40. 400 C$(48) = "L16GP48L16GP48L16GP48L16GP48L16GP16"'       * 0 *
  41. 410 C$(49) = "L48GP48L16GP48L16GP48L16GP48L16GP16"'       * 1 *
  42. 420 C$(50) = "L48GP48L48GP48L16GP48L16GP48L16GP16"'       * 2 *
  43. 430 C$(51) = "L48GP48L48GP48L48GP48L16GP48L16GP16"'       * 3 *
  44. 440 C$(52) = "L48GP48L48GP48L48GP48L48GP48L16GP16"'       * 4 *
  45. 450 C$(53) = "L48GP48L48GP48L48GP48L48GP48L48GP16"'       * 5 *
  46. 460 C$(54) = "L16GP48L48GP48L48GP48L48GP48L48GP16"'       * 6 *
  47. 470 C$(55) = "L16GP48L16GP48L48GP48L48GP48L48GP16"'       * 7 *
  48. 480 C$(56) = "L16GP48L16GP48L16GP48L48GP48L48GP16"'       * 8 *
  49. 490 C$(57) = "L16GP48L16GP48L16GP48L16GP48L48GP16"'       * 9 *
  50. 500 C$(58) = ""
  51. 510 C$(59) = ""
  52. 520 C$(60) = ""
  53. 530 C$(61) = ""
  54. 540 C$(62) = ""
  55. 550 C$(63) = "L48GP48L48GP48L16GP48L16GP48L48GP48L48GP16"'* ? *
  56. 560 C$(64) = ""
  57. 570 C$(65) = "L48GP48L16GP16"'                            * A *
  58. 580 C$(66) = "L16GP48L48GP48L48GP48L48GP16"'              * B *
  59. 590 C$(67) = "L16GP48L48GP48L16GP48L48GP16"'              * C *
  60. 600 C$(68) = "L16GP48L48GP48L48GP16"'                     * D *
  61. 610 C$(69) = "L48GP16"'                                   * E *
  62. 620 C$(70) = "L48GP48L48GP48L16GP48L48GP16"'              * F *
  63. 630 C$(71) = "L16GP48L16GP48L48GP16"'                     * G *
  64. 640 C$(72) = "L48GP48L48GP48L48GP48L48GP16"'              * H *
  65. 650 C$(73) = "L48GP48L48GP16"'                            * I *
  66. 660 C$(74) = "L48GP48L16GP48L16GP48L16GP16"'              * J *
  67. 670 C$(75) = "L16GP48L48GP48L16GP16"'                     * K *
  68. 680 C$(76) = "L48GP48L16GP48L48GP48L48GP16"'              * L *
  69. 690 C$(77) = "L16GP48L16GP16"'                            * M *
  70. 700 C$(78) = "L16GP48L48GP16"'                            * N *
  71. 710 C$(79) = "L16GP48L16GP48L16GP16"'                     * O *
  72. 720 C$(80) = "L48GP48L16GP48L16GP48L48GP16"'              * P *
  73. 730 C$(81) = "L16GP48L16GP48L48GP48L16GP16"'              * Q *
  74. 740 C$(82) = "L48GP48L16GP48L48GP16"'                     * R *
  75. 750 C$(83) = "L48GP48L48GP48L48GP16"'                     * S *
  76. 760 C$(84) = "L16GP16"'                                   * T *
  77. 770 C$(85) = "L48GP48L48GP48L16GP16"'                     * U *
  78. 780 C$(86) = "L48GP48L48GP48L48GP48L16GP16"'              * V *
  79. 790 C$(87) = "L48GP48L16GP48L16GP16"'                     * W *
  80. 800 C$(88) = "L16GP48L48GP48L48GP48L16GP16"'              * X *
  81. 810 C$(89) = "L16GP48L48GP48L16GP48L16GP16"'              * Y *
  82. 820 C$(90) = "L16GP48L16GP48L48GP48L48GP16"'              * Z *
  83. 830 PY$ = "PRESS ANY KEY"'                       *                  *
  84. 840 PR$ = "WHICH CHARACTER?"'                    *                  *
  85. 850 CLS:LOCATE 3,24,0:PRINT "MORSE CODE PRACTICE PROGRAM"
  86. 860 LOCATE 5,29,0:PRINT "(A)scii File"
  87. 870 LOCATE 7,29,0:PRINT "(R)andom Characters"
  88. 880 LOCATE 9,29,0:PRINT "(C)ommonly Used Words"
  89. 890 LOCATE 11,29,0:PRINT "(Y)our Selection"
  90. 900 LOCATE 13,29,0:PRINT "(5) Letter Code Groups"
  91. 910 LOCATE 15,29,0:PRINT "(F)CC Test Style"
  92. 920 LOCATE 17,29,0:PRINT "(Q)uit Code Practice"
  93. 930 LN = 1:CN = 1' LN IS LINE NUMBER, CN IS COLUMN NUMBER
  94. 940 GOSUB 1240
  95. 950 S$ = INKEY$:IF S$ = "" THEN 950'    **************************
  96. 960 IF LEN(S$) > 1 THEN GOSUB 1210:GOTO 950'                     **
  97. 970 IF S$ = "A" OR S$ = "a" THEN 2130' **                       **
  98. 980 IF S$ = "R" OR S$ = "r" THEN 4830'  **  ROUTE THE INPUT     **
  99. 990 IF S$ = "C" OR S$ = "c" THEN 2330'  **                      **
  100. 1000 IF S$ = "Y" OR S$ = "y" THEN 1080'   **                      **
  101. 1010 IF S$ = "F" OR S$ = "f" THEN 1330'  ** FROM THE KEYBOARD    **
  102. 1020 IF S$ = "5" THEN 2230'              **                      **
  103. 1030 IF S$ = "Q" OR S$ = "q" THEN CLS:END
  104. 1040 GOTO 950'                           **************************
  105. 1050 LN = CSRLIN:CN = POS(0)
  106. 1060 LOCATE 25,1,0:PRINT "Press F10 to exit";
  107. 1070 LOCATE LN,CN,0:RETURN
  108. 1080 CLS' ************* YOUR SELECTION ROUTINE *********************
  109. 1090 LOCATE 1,1,0:PRINT PY$:GOSUB 1050:GOSUB 1240
  110. 1100 ON KEY(10) GOSUB 1300
  111. 1110 KEY(10) ON:LOCATE 3,1,0
  112. 1120 S$ = INKEY$:IF S$ = "" THEN 1120
  113. 1130 IF LEN(S$) > 1 THEN GOSUB 1210:GOTO 1120
  114. 1140 S = ASC(S$)
  115. 1150 IF S > 96 AND S < 123 THEN S = S - 32
  116. 1160 IF S < 32 OR S > 90 THEN 1120
  117. 1170 IF S > 57 AND S < 63 OR S = 64 THEN 1190
  118. 1180 PRINT S$;
  119. 1190 PLAY C$(S)
  120. 1200 GOTO 1120
  121. 1210 S$ = MID$(S$,2,1):S = ASC(S$)'*** SPEED SET SUB-ROUTINE ******************
  122. 1220 IF S = 72 THEN T = T + 5:IF T > 255 THEN T = T - 5
  123. 1230 IF S = 80 THEN T = T - 5:IF T < 35 THEN T = T + 5
  124. 1240 T$ = "T" + STR$(T):PLAY T$:TT = (T/5)-1
  125. 1250 LN = CSRLIN:CN = POS(0)
  126. 1260 LOCATE 25,29,0:PRINT CHR$(24);" Faster    ";CHR$(25);" Slower     ";
  127. 1270 LOCATE 25,52,0:PRINT TT;" WPM";
  128. 1280 LOCATE LN,CN,0
  129. 1290 RETURN
  130. 1300 RESET' ******SUBROUTINE TO START AGAIN*************
  131. 1310 KEY(10) OFF
  132. 1320 RETURN 850
  133. 1330 CLS:GOSUB 1050:GOSUB 1240' *** FCC TEST STYLE ***
  134. 1340 ON KEY(10) GOSUB 1300
  135. 1350 KEY(10) ON:LOCATE 1,1,0
  136. 1360 FD$(1) = "":FD$(2) = "":FD$(3) = "":FD$(4) = ""
  137. 1370 RESTORE
  138. 1380 FOR I = 1 TO 18
  139. 1390 FOR II = 1 TO 10
  140. 1400 READ G$(II)
  141. 1410 NEXT II
  142. 1420 B$ = RIGHT$(TIME$,2):V = VAL(B$)
  143. 1430 RANDOMIZE V
  144. 1440 Y = INT((RND*(10)) + 1)
  145. 1450 FC$(I) = G$(Y)
  146. 1460 NEXT I
  147. 1470 F$(1) = "VVV VVV "
  148. 1480 F$(2) = FC$(1)
  149. 1490 F$(3) = " DE "
  150. 1500 F$(4) = FC$(2)
  151. 1510 F$(5) = " RRR AND TNX "
  152. 1520 F$(6) = FC$(3)
  153. 1530 F$(7) = ", UR RST "
  154. 1540 F$(8) = FC$(4)
  155. 1550 F$(9) = ", QTH HR IS "
  156. 1560 F$(10) = FC$(5)
  157. 1570 F$(11) = ", AND NAME IS "
  158. 1580 F$(12) = FC$(6)
  159. 1590 F$(13) = ".  MY RIG RUNS "
  160. 1600 F$(14) = FC$(7)
  161. 1610 F$(15) = " WATTS INTO A "
  162. 1620 F$(16) = FC$(8)
  163. 1630 F$(17) = " UP "
  164. 1640 F$(18) = FC$(9)
  165. 1650 F$(19) = " FEET.  MY RECEIVER IS "
  166. 1660 F$(20) = FC$(10)
  167. 1670 F$(21) = " WITH "
  168. 1680 F$(22) = FC$(11)
  169. 1690 F$(23) = " TUBES.  MY AGE IS "
  170. 1700 F$(24) = FC$(12)
  171. 1710 F$(25) = " AND LICENSED "
  172. 1720 F$(26) = FC$(13)
  173. 1730 F$(27) = " YEARS AS "
  174. 1740 F$(28) = FC$(14)
  175. 1750 F$(29) = " CLASS.  THE WEATHER HERE IS "
  176. 1760 F$(30) = FC$(15)
  177. 1770 F$(31) = " AND TEMPERATURE IS "
  178. 1780 F$(32) = FC$(16)
  179. 1790 F$(33) = " DEGREES.  MY OCCUPATION IS "
  180. 1800 F$(34) = FC$(17)
  181. 1810 F$(35) = ".  I MUST QRT SOON FOR "
  182. 1820 F$(36) = FC$(18)
  183. 1830 F$(37) = ".  HOW COPY?  "
  184. 1840 F$(38) = FC$(1)
  185. 1850 F$(39) = " DE "
  186. 1860 F$(40) = FC$(2)
  187. 1870 F$(41) = " KN AR"
  188. 1880 FOR I = 1 TO 11
  189. 1890 FD$(1) = FD$(1) + F$(I)
  190. 1900 NEXT I
  191. 1910 FOR I = 12 TO 21
  192. 1920 FD$(2) = FD$(2) + F$(I)
  193. 1930 NEXT I
  194. 1940 FOR I = 22 TO 31
  195. 1950 FD$(3) = FD$(3) + F$(I)
  196. 1960 NEXT I
  197. 1970 FOR I = 32 TO 41
  198. 1980 FD$(4) = FD$(4) + F$(I)
  199. 1990 NEXT I
  200. 2000 FOR I = 1 TO 4
  201. 2010 L = LEN(FD$(I))
  202. 2020 FOR Q = 1 TO L
  203. 2030 A$ = MID$(FD$(I),Q,1):A = ASC(A$)
  204. 2040 PRINT A$;:PLAY C$(A)
  205. 2050 S$ = INKEY$:IF LEN(S$) > 1 THEN GOSUB 1210
  206. 2060 NEXT Q
  207. 2070 NEXT I
  208. 2080 LOCATE 17,9,0:PRINT "(F)CC TEST STYLE AGAIN?"
  209. 2090 S$ = INKEY$:IF S$ = "" THEN 2090
  210. 2100 IF LEN(S$) > 1 THEN GOSUB 1210:GOTO 2090
  211. 2110 IF S$ = "F" OR S$ = "f" THEN 1330
  212. 2120 GOTO 850
  213. 2130 CLS:GOSUB 1050:GOSUB 1240'****** ASCII FILE ROUTINE ********************
  214. 2140 ON KEY(10) GOSUB 1300
  215. 2150 KEY(10) ON:ON ERROR GOTO 2170
  216. 2160 LOCATE 1,1,0
  217. 2170 INPUT "Enter file name:   ",CFILE$
  218. 2180 LOCATE 3,1,0
  219. 2190 OPEN CFILE$ FOR INPUT AS #1
  220. 2200 IF EOF(1) THEN CLOSE:GOTO 850
  221. 2210 S$ = INKEY$:IF LEN(S$) > 1 THEN GOSUB 1210
  222. 2220 MSG$ = INPUT$(1,#1):GOSUB 5040: GOTO 2200
  223. 2230 CLS:GOSUB 1050:GOSUB 1240'***** 5 LETTER CODE GROUPS ROUTINE **********
  224. 2240 ON KEY(10) GOSUB 1300
  225. 2250 KEY(10) ON:LOCATE 1,1,0
  226. 2260 I = 0
  227. 2270 GOSUB 5150
  228. 2280 S$ = INKEY$:IF LEN(S$) > 1 THEN GOSUB 1210
  229. 2290 IF Y > 57 AND Y < 63 OR Y = 64 THEN 2270
  230. 2300 PRINT CHR$(Y);:PLAY C$(Y):I = I + 1
  231. 2310 IF I = 5 THEN I = 0:PRINT " ";:PLAY "P12"
  232. 2320 GOTO 2270
  233. 2330 CLS'******** COMMONLY USED WORDS ROUTINE ************************
  234. 2340 GOSUB 1050:GOSUB 1240:ON KEY(10) GOSUB 1300
  235. 2350 KEY(10) ON
  236. 2360 WRD$(1) = "A"
  237. 2370 WRD$(2) = "NO"
  238. 2380 WRD$(3) = "SO"
  239. 2390 WRD$(4) = "BE"
  240. 2400 WRD$(5) = "AN"
  241. 2410 WRD$(6) = "DO"
  242. 2420 WRD$(7) = "AS"
  243. 2430 WRD$(8) = "IT"
  244. 2440 WRD$(9) = "AT"
  245. 2450 WRD$(10) = "IF"
  246. 2460 WRD$(11) = "HE"
  247. 2470 WRD$(12) = "IN"
  248. 2480 WRD$(13) = "OR"
  249. 2490 WRD$(14) = "IS"
  250. 2500 WRD$(15) = "ON"
  251. 2510 WRD$(16) = "GO"
  252. 2520 WRD$(17) = "OF"
  253. 2530 WRD$(18) = "TO"
  254. 2540 WRD$(19) = "OH"
  255. 2550 WRD$(20) = "BY"
  256. 2560 WRD$(21) = "I"
  257. 2570 WRD$(22) = "US"
  258. 2580 WRD$(23) = "ME"
  259. 2590 WRD$(24) = "UP"
  260. 2600 WRD$(25) = "WE"
  261. 2610 WRD$(26) = "FOR"
  262. 2620 WRD$(27) = "CRY"
  263. 2630 WRD$(28) = "BUT"
  264. 2640 WRD$(29) = "HIM"
  265. 2650 WRD$(30) = "ONE"
  266. 2660 WRD$(31) = "WAS"
  267. 2670 WRD$(32) = "YOU"
  268. 2680 WRD$(33) = "NOW"
  269. 2690 WRD$(34) = "CAN"
  270. 2700 WRD$(35) = "HOW"
  271. 2710 WRD$(36) = "ANY"
  272. 2720 WRD$(37) = "OUR"
  273. 2730 WRD$(38) = "WAY"
  274. 2740 WRD$(39) = "ARE"
  275. 2750 WRD$(40) = "WHO"
  276. 2760 WRD$(41) = "OUT"
  277. 2770 WRD$(42) = "AND"
  278. 2780 WRD$(43) = "HAS"
  279. 2790 WRD$(44) = "USE"
  280. 2800 WRD$(45) = "ALL"
  281. 2810 WRD$(46) = "GOT"
  282. 2820 WRD$(47) = "MAY"
  283. 2830 WRD$(48) = "SAY"
  284. 2840 WRD$(49) = "AIM"
  285. 2850 WRD$(50) = "HAD"
  286. 2860 WRD$(51) = "GET"
  287. 2870 WRD$(52) = "MAN"
  288. 2880 WRD$(53) = "HER"
  289. 2890 WRD$(54) = "NOT"
  290. 2900 WRD$(55) = "SEE"
  291. 2910 WRD$(56) = "SHE"
  292. 2920 WRD$(57) = "THE"
  293. 2930 WRD$(58) = "HIS"
  294. 2940 WRD$(59) = "BEEN"
  295. 2950 WRD$(60) = "DOES"
  296. 2960 WRD$(61) = "KIND"
  297. 2970 WRD$(62) = "HAND"
  298. 2980 WRD$(63) = "COME"
  299. 2990 WRD$(64) = "GIRL"
  300. 3000 WRD$(65) = "VERY"
  301. 3010 WRD$(66) = "INTO"
  302. 3020 WRD$(67) = "TIME"
  303. 3030 WRD$(68) = "OVER"
  304. 3040 WRD$(69) = "THIS"
  305. 3050 WRD$(70) = "YOUR"
  306. 3060 WRD$(71) = "GIVE"
  307. 3070 WRD$(72) = "THEM"
  308. 3080 WRD$(73) = "WITH"
  309. 3090 WRD$(74) = "SUCH"
  310. 3100 WRD$(75) = "TELL"
  311. 3110 WRD$(76) = "JUST"
  312. 3120 WRD$(77) = "LIKE"
  313. 3130 WRD$(78) = "HAVE"
  314. 3140 WRD$(79) = "WERE"
  315. 3150 WRD$(80) = "THAT"
  316. 3160 WRD$(81) = "WANT"
  317. 3170 WRD$(82) = "THEY"
  318. 3180 WRD$(83) = "WELL"
  319. 3190 WRD$(84) = "LOOK"
  320. 3200 WRD$(85) = "MADE"
  321. 3210 WRD$(86) = "WHAT"
  322. 3220 WRD$(87) = "WHEN"
  323. 3230 WRD$(88) = "FACE"
  324. 3240 WRD$(89) = "HERE"
  325. 3250 WRD$(90) = "MUCH"
  326. 3260 WRD$(91) = "ONLY"
  327. 3270 WRD$(92) = "PART"
  328. 3280 WRD$(93) = "WILL"
  329. 3290 WRD$(94) = "SEEM"
  330. 3300 WRD$(95) = "MAKE"
  331. 3310 WRD$(96) = "MOST"
  332. 3320 WRD$(97) = "SOME"
  333. 3330 WRD$(98) = "THAN"
  334. 3340 WRD$(99) = "MORE"
  335. 3350 WRD$(100) = "THEN"
  336. 3360 WRD$(101) = "MUST"
  337. 3370 WRD$(102) = "KNOW"
  338. 3380 WRD$(103) = "MANY"
  339. 3390 WRD$(104) = "FROM"
  340. 3400 WRD$(105) = "SAID"
  341. 3410 WRD$(106) = "DOWN"
  342. 3420 WRD$(107) = "ABOUT"
  343. 3430 WRD$(108) = "SHALL"
  344. 3440 WRD$(109) = "WHICH"
  345. 3450 WRD$(100) = "UNDER"
  346. 3460 WRD$(111) = "THEIR"
  347. 3470 WRD$(112) = "YOUNG"
  348. 3480 WRD$(113) = "WOMEN"
  349. 3490 WRD$(114) = "THING"
  350. 3500 WRD$(115) = "MIGHT"
  351. 3510 WRD$(116) = "THERE"
  352. 3520 WRD$(117) = "OFTEN"
  353. 3530 WRD$(118) = "THIN"
  354. 3540 WRD$(119) = "WOULD"
  355. 3550 WRD$(120) = "THESE"
  356. 3560 WRD$(121) = "OTHER"
  357. 3570 WRD$(122) = "THOSE"
  358. 3580 WRD$(123) = "WHERE"
  359. 3590 WRD$(124) = "TODAY"
  360. 3600 WRD$(125) = "MAYBE"
  361. 3610 WRD$(126) = "SHOULD"
  362. 3620 WRD$(127) = "MOTHER"
  363. 3630 WRD$(128) = "FATHER"
  364. 3640 WRD$(129) = "BECAUSE"
  365. 3650 WRD$(130) = "PICTURE"
  366. 3660 WRD$(131) = "THROUGH"
  367. 3670 WRD$(132) = "PROBABLY"
  368. 3680 WRD$(133) = "SOMETHING"
  369. 3690 WRD$(134) = "AMATEUR"
  370. 3700 WRD$(135) = "RADIO"
  371. 3710 WRD$(136) = "HAM"
  372. 3720 WRD$(137) = "ARRL"
  373. 3730 WRD$(138) = "COAX"
  374. 3740 WRD$(139) = "DIPOLE"
  375. 3750 WRD$(140) = "QUAD"
  376. 3760 WRD$(141) = "BEAM"
  377. 3770 WRD$(142) = "YAGI"
  378. 3780 WRD$(143) = "WINDOM"
  379. 3790 WRD$(144) = "VERTICAL"
  380. 3800 WRD$(145) = "WIRE"
  381. 3810 WRD$(146) = "TEMP"
  382. 3820 WRD$(147) = "HOT"
  383. 3830 WRD$(148) = "COLD"
  384. 3840 WRD$(149) = "CLEAR"
  385. 3850 WRD$(150) = "SUNNY"
  386. 3860 WRD$(151) = "WET"
  387. 3870 WRD$(152) = "DRY"
  388. 3880 WRD$(153) = "RAINY"
  389. 3890 WRD$(154) = "YAESU"
  390. 3900 WRD$(155) = "KENWOOD"
  391. 3910 WRD$(156) = "HEATH"
  392. 3920 WRD$(157) = "DRAKE"
  393. 3930 WRD$(158) = "COLLINS"
  394. 3940 WRD$(159) = "TEN TEC"
  395. 3950 WRD$(160) = "HOMEBREW"
  396. 3960 WRD$(161) = "ICOM"
  397. 3970 WRD$(162) = "NOVICE"
  398. 3980 WRD$(163) = "TECH"
  399. 3990 WRD$(164) = "GENERAL"
  400. 4000 WRD$(165) = "ADVANCED"
  401. 4010 WRD$(166) = "EXTRA"
  402. 4020 WRD$(167) = "SHACK"
  403. 4030 WRD$(168) = "CONTEST"
  404. 4040 WRD$(169) = "TEST"
  405. 4050 WRD$(170) = "LINEAR"
  406. 4060 WRD$(171) = "AMP"
  407. 4070 WRD$(172) = "TUNER"
  408. 4080 WRD$(173) = "PHONE"
  409. 4090 WRD$(174) = "TUBE"
  410. 4100 WRD$(175) = "KEYER"
  411. 4110 WRD$(176) = "POWER"
  412. 4120 WRD$(177) = "WATTS"
  413. 4130 WRD$(178) = "VOLTS"
  414. 4140 WRD$(179) = "NORTH"
  415. 4150 WRD$(180) = "SOUTH"
  416. 4160 WRD$(181) = "EAST"
  417. 4170 WRD$(182) = "WEST"
  418. 4180 WRD$(183) = "MILES"
  419. 4190 WRD$(184) = "QRL"
  420. 4200 WRD$(185) = "QRM"
  421. 4210 WRD$(186) = "QRN"
  422. 4220 WRD$(187) = "QRP"
  423. 4230 WRD$(188) = "QRS"
  424. 4240 WRD$(189) = "QRT"
  425. 4250 WRD$(190) = "QRU"
  426. 4260 WRD$(191) = "QRV"
  427. 4270 WRD$(192) = "QRZ"
  428. 4280 WRD$(193) = "QSB"
  429. 4290 WRD$(194) = "QSK"
  430. 4300 WRD$(195) = "QSL"
  431. 4310 WRD$(196) = "QSO"
  432. 4320 WRD$(197) = "QSY"
  433. 4330 WRD$(198) = "QTH"
  434. 4340 WRD$(199) = "ABT"
  435. 4350 WRD$(200) = "ADR"
  436. 4360 WRD$(201) = "AGN"
  437. 4370 WRD$(202) = "ANT"
  438. 4380 WRD$(213) = "FREQ"
  439. 4390 WRD$(214) = "FT"
  440. 4400 WRD$(215) = "GE"
  441. 4410 WRD$(216) = "GN"
  442. 4420 WRD$(217) = "GND"
  443. 4430 WRD$(218) = "HI"
  444. 4440 WRD$(219) = "HPE"
  445. 4450 WRD$(220) = "HR"
  446. 4460 WRD$(221) = "HRD"
  447. 4470 WRD$(222) = "HW"
  448. 4480 WRD$(223) = "COPY"
  449. 4490 WRD$(224) = "INFO"
  450. 4500 WRD$(225) = "MSG"
  451. 4510 WRD$(226) = "OM"
  452. 4520 WRD$(227) = "PSE"
  453. 4530 WRD$(228) = "PWR"
  454. 4540 WRD$(229) = "RCVR"
  455. 4550 WRD$(230) = "RIG"
  456. 4560 WRD$(231) = "RPT"
  457. 4570 WRD$(232) = "RST"
  458. 4580 WRD$(233) = "SKED"
  459. 4590 WRD$(234) = "SRI"
  460. 4600 WRD$(235) = "SSB"
  461. 4610 WRD$(236) = "73"
  462. 4620 WRD$(237) = "TMW"
  463. 4630 WRD$(238) = "TNX"
  464. 4640 WRD$(239) = "TX"
  465. 4650 WRD$(240) = "UR"
  466. 4660 WRD$(241) = "VY"
  467. 4670 WRD$(242) = "WUD"
  468. 4680 WRD$(243) = "WX"
  469. 4690 WRD$(244) = "XMTR"
  470. 4700 WRD$(245) = "XTAL"
  471. 4710 WRD$(246) = "XCVR"
  472. 4720 WRD$(247) = "XYL"
  473. 4730 WRD$(248) = "YL"
  474. 4740 WRD$(249) = "88"
  475. 4750 WRD$(250) = "-"
  476. 4760 B$ = RIGHT$(TIME$,2):V=VAL(B$):RANDOMIZE V
  477. 4770 LOCATE 1,1,0
  478. 4780 B$ = RIGHT$(TIME$,2):V=VAL(B$)
  479. 4790 S$ = INKEY$:IF LEN(S$) > 1 THEN GOSUB 1210
  480. 4800 W = INT(RND*(32000)):V=V+W:RANDOMIZE V
  481. 4810 Y = INT((RND*(250)) + 1)
  482. 4820 MSG$ = WRD$(Y) + " ":GOSUB 5040:GOTO 4780
  483. 4830 CLS'********** RANDOM CHARACTER ROUTINE  ****************************
  484. 4840 GOSUB 1050:GOSUB 1240:I = 0
  485. 4850 ON KEY(10) GOSUB 1300
  486. 4860 KEY(10) ON
  487. 4870 GOSUB 5150
  488. 4880 LOCATE 10,13,0:PRINT PR$;
  489. 4890 IF Y > 57 AND Y < 63 OR Y = 64 THEN 4870
  490. 4900 PLAY C$(Y)
  491. 4910 S$ = INKEY$:IF S$ = "" THEN 4910
  492. 4920 IF LEN(S$) > 1 THEN GOSUB 1210:GOTO 4910
  493. 4930 S = ASC(S$)
  494. 4940 LOCATE 17,20,0:PRINT S$;
  495. 4950 IF S > 96 AND S < 123 THEN S = S - 32
  496. 4960 IF S = Y THEN LOCATE 17,24,0:PRINT "Right On!  ":PLAY "P4":GOTO 4840
  497. 4970 LOCATE 17,24,0:PRINT "WRONG!     "
  498. 4980 PLAY "T32O0L32CP64T64O2AP64"
  499. 4990 T$ = "T" + STR$(T) + "O3P4":PLAY T$
  500. 5000 I = I + 1
  501. 5010 IF I < 3 THEN 4900
  502. 5020 IF I = 3 THEN LOCATE 17,20,0:PRINT CHR$(Y);"   is Correct.";
  503. 5030 PLAY C$(Y)+ "P2":GOTO 4840
  504. 5040 '*****SUBROUTINE TO SEND A STRING IN MORSE **************************
  505. 5050 FOR I=1 TO LEN(MSG$)
  506. 5060 S$=MID$(MSG$,I,1):S=ASC(S$)
  507. 5070 IF S>96 AND S<123 THEN S=S-32
  508. 5080 IF S = 13 THEN PLAY "P12":PRINT:GOTO 5110
  509. 5090 IF S<32 OR S>90 THEN 5120
  510. 5100 PLAY C$(S):PRINT S$;
  511. 5110 S$ = INKEY$:IF LEN(S$) > 1 THEN GOSUB 1210
  512. 5120 NEXT I
  513. 5130 RETURN
  514. 5140 '*************** RANDOMIZE ROUTINE ***************************
  515. 5150 X$ = RIGHT$(TIME$,2):X = VAL(X$)
  516. 5160 RANDOMIZE X
  517. 5170 Y = INT(RND*(46+1)):Y = Y + 44:RETURN
  518. 5180 DATA WB1ZLX,WA2HHS,KA3CQZ,KB4FLF,WD5HIG,K6AAS,KL7ZXC,W8ANA,KA9ZD,WB0JOQ,WA1SSH,WB2KRK,KF3G,NP4ZX,WB5HSI,WB6VBB,AL7L,WB8TER,KB9J,W0TRW,GEORGE,BILL,FRED,JOHN,WILBUR,STEVE,HANK,MIKE,KARL,LARRY
  519. 5190 DATA 599,589,579,578,479,468,459,339,359,369,"MINOT,ND","JONESBORO,GA","WORCHESTER,MASS","GASTONIA,NC","SITKA,ALASKA","CHARLESTON,WVA","MESA,ARIZ","PORTLAND,OR","INDIANAPOLIS,IND","LUBBOCK,TEX",FRANK,JOEL,HARRY,STANLEY,TED,DONALD,ROBERT,GEOFFREY
  520. 5200 DATA MARVIN,PETER,45,100,1500,250,450,75,500,900,60,200,INVERTED VEE,TRAP DOUBLET,GROUND PLANE,VERTICAL,TRIBAND YAGI,DIPOLE,WINDOM,QUAD,DELTA LOOP,LONGWIRE,50,35,20,75,80,40,65,34,27,43,HQ100,R4,SB303,SX101,R390,TS830S,75S3B,R1000,NC183D,FRG7
  521. 5210 DATA 10,11,21,6,7,8,9,12,19,18,41,23,36,33,53,68,47,29,14,39,2,3,4,5,6,7,8,9,10,12,NOVICE,TECHNICIAN,GENERAL,ADVANCE,EXTRA,NOVICE,TECHNICIAN,GENERAL,ADVANCE,EXTRA
  522. 5220 DATA COOL AND DRY,COLD AND WET,WARM AND WINDY,HOT AND HUMID,COLD AND WINDY,WARM AND DRY,COOL AND WINDY,HOT AND DRY,WARM AND WET,COLD AND DRY,MINUS 6,57,71,23,43,49,65,34,29,MINUS 4,STUDENT,LAWYER,MECHANIC,DENTIST,TEACHER,POLICEMAN
  523. 5230 DATA TRUCK DRIVER,CLERK,GOURMET COOK,DOCTOR,BREAKFAST,LUNCH,DINNER,SCHOOL,BED,EXERCISE,LUNCH,DINNER,WORK,BREAKFAST
  524.